<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /**
         *  async 关键字：
         *      async函数的执行结果会返回promise对象，并且把内部的值进行promise封装。
         *      如果promise对象通过then方法或者catch方法又注册了回调函数，async函数执行
         *      完成之后，注册的回调函数就会放到异步队列中，等待执行
         */



         /**
          *  await 关键字：
          *     await关键字只能放到async函数里面，await是等待的意思
          * 
          *     await不仅仅用于等Promise对象，还可以等任意表达式，所以await后面实际
          *     是可以接普通函数调用或者直接量
          *     
          *     await 等待一个promise对象执行完毕，并返回结果
          */

          function getSomething(){
            return 'something'
          }


          async function testAsync(){
            return 'hello async'
          }


          async function test(){
            const v1 =  getSomething()
            const v2 =  testAsync()
            const v3 =  await testAsync()
            //await 等待的 Promise对象失败的话，会进行报错，需要使用try-catch来进行处理
            console.log(v1)
            console.log(v2)
            console.log(v3)
          }

          test()








          
























    </script>
    
</body>
</html>